package com.zhf.xml03;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;

import java.util.List;

/**
 * @Author: ZhaoHuanfeng
 * @Date: 2020/9/26 15:38
 */
public class TestDOM4J {
    /**
     * 获取XML文件中的所有元素
     */
    @Test
    public void test1() throws DocumentException {
        //获取XML解析对象
        SAXReader reader=new SAXReader();

        //解析XML获取文档对象document
        Document document=reader.read("F:\\JavaWork\\jdbc_task03\\src\\com\\zhf\\xml03\\user.xml");

        //获取根元素
        Element rootElement = document.getRootElement();

        //获取根元素名称
        System.out.println(rootElement.getName());

        List<Element> elements = rootElement.elements();
        for (Element element:elements){
            System.out.println(element.getName());
            List<Element> elements1 = element.elements();
            for (Element element1:elements1){
                System.out.println(element1.getName());
            }
        }
    }

    /**
     * 获取XML中标签的文本信息和属性信息
     */
    @Test
    public void test2() throws DocumentException {
        //获取解析XML的SAXReader
        SAXReader reader = new SAXReader();

        //获取文档对象
        Document document=reader.read("F:\\JavaWork\\jdbc_task03\\src\\com\\zhf\\xml03\\user.xml");

        //获取根节点
        Element rootElement = document.getRootElement();

        //获取子节点
        List<Element> elements = rootElement.elements();

        //获取集合中的第一个子节点
        Element user = elements.get(0);

        //获取节点中的信息
        String id = user.attributeValue("id");
        String name = user.attributeValue("name");
        String age = user.attributeValue("age");
        String hobby = user.element("hobby").getText();

        //打印
        System.out.println("id:"+id+"   name:"+name+"   age:"+age+"   hobby:"+hobby);
    }
}
